﻿<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=food;host=127.0.0.1';
$user = 'root';
$password = '';

try {

    $dbh = new PDO($dsn, $user, $password);
	
	$dbh->query("SET NAMES UTF8");
	
} catch (PDOException $e) {

    echo 'Connection failed: ' . $e->getMessage();
	
}




/*
 *	采集添加剂信息
 *  1.采集www.xuanfood.com/zymc/tjj/list_61_1.html-www.xuanfood.com/zymc/tjj/list_61_8.html的链接
 *	2.分别进入具体页面进行采集：
 *		1.将添加剂的中文名，功能，adi存入food_additive表，返回添加剂的id值。
 *		2.利用id将添加剂的安全性存入food_additive_security中。
 *		3.将类别存入food_additive_category中，返回类别的id，
 *		4.依据添加剂的id值和类别的id，更新food_additive_category_rel。
		5.将最大使用量区间的食品种类存入food_category表，返回其id
		5.根据食品种类id和添加剂id，再结合页面上最大使用量值存入food_maxuse表，
	
	采集食品信息
	1.采集www.xuanfood.com/biaoqianjiedu/的所有连接，并将其分类名存入food_category表，返回其种类id。
	2.进入第二级页面进行采集链接
	3.进入具体页面进行信息采集，依据种类id，将食品名称，条形码，图片，种类id存入food_basic表，返回食品id
	4.依据页面上的添加剂查询food_additive表，返回所查询添加剂的id和食品id，在food_basic_additive_rel表   中建立与食品id的联系。
	5.将配料存入food_batching表中，返回其配料id，结合食品id，在food_basic_batching_rel表中建立联系
	6.将营养成分类别存入food_nutrition_category表，返回其id。依据食品id和营养成分id将营养成分存入
	  food_basic_nutrition_rel表，建立联系。
	7.依据最大使用量的食品种类，查询种类id是否存在，if不存在，则存入food_category表，并返回其id,else      返回其id。
	
 
	*/					
	
	//采集添加剂页面的所有链接
/*     $urlLink = "http://www.xuanfood.com/zymc/tjj/list_61_8.html";
	$snoopy->fetchlinks($urlLink);   
	$url=array();   
	$url=$snoopy->results; 
	//print_r($url); 
	
	//去除不相关的url
	foreach($url as $key=>$value)   
    {   
		//http://www.xuanfood.com/zymc/tjj/qt/2011/0804/1070.html	
        if (!preg_match("/http:\/\/www\.xuanfood\.com\/zymc\/tjj\/[a-zA-Z]{1,6}\/[1-9]{1,6}/i",$value))   
        {   
            unset($url[$key]);   
        }   
    }   
	print_r($url);  
 */


/*  foreach ($url as $key=>$value)   
    {   
            
        $snoopy=new Snoopy();   
        $snoopy->fetch($value);   
        $content=array();   
        $content=$snoopy->results;   
       // print_r($content);   
			
		//读取页面信息
		preg_match_all("/<td>(.*?)<\/td>/is",$content,$tt); 
          
            //print_r($tt[1]);
		   
		    //添加剂名称
		    $additive_ch_name = DeleteHtml($tt[1][1]);
			
			//添加剂adi
			$adi = substr(DeleteHtml($tt[1][5]),30,20);
			$patterns = "/\d+/";
			preg_match_all($patterns,$adi,$arr);
			
			$additive_adi = $arr[0][1];
		    
			//添加剂功能
		    $additive_func = DeleteHtml($tt[1][7]);
			
			 //将添加剂名称，功能，adi值存入food_additive表，返回添加剂的id值
			$additive_id = saveAdditiveInfor($additive_ch_name,$additive_adi,$additive_func,$dbh);
			
			//添加剂安全性
		    $additive_secu = $tt[1][5];
			preg_match_all("/<p>(.*?)<\/p>/is",$additive_secu,$secu);
			foreach($secu[0] as $secuk=>$secuv)
			{
				$additive_security = DeleteHtml($secuv);
				
				//将添加剂的安全信息存入food_additiv_security表
				saveAdditiveSecurity($additive_id,$additive_security,$dbh);
			}
			

		    //添加剂类别
		   $additive_category[] = DeleteHtml($tt[1][3]);
			
			//print_r($additive_category);
			
			$count1 = (int)count($additive_category) - 1;
			
			$additive_category_v1[] = explode("，",$additive_category[$count1]);
			
			//print_r($additive_category_v1);
			
			
			foreach($additive_category_v1 as $k2=>$v2)
			{
				foreach($v2 as $k3=>$v3)
				{
					$acAnd[] = explode('和',$v3);
				}
			}
			
			foreach($acAnd as $k4=>$v4)
			{
				foreach($v4 as $k5=>$v5)
				{
					$acAndAdd[] = explode('、',$v5);
				}
			}
			
			foreach($acAndAdd as $kw=>$vw)
			{
				foreach($vw as $kn=>$vn)
				{
					//将添加剂信息类别信息存入food_additive_category
					$additive_category_id = saveAdditiveCategory($vn,$dbh);
					
					//建立添加剂类别与添加剂之间的联系
					saveAdditiveCategoryRel($additive_id,$additive_category_id,$dbh);
				}
			}

		//读取最大使用量
		preg_match_all("/<p>(.*?)<\/p>/is",$content,$maxuse); 
		//print_r($maxuse[0]);	
		
		$maxuseCount = count($maxuse[0]);
		$maxuseArr = array();
		$startKey = (int)getMaxuseStartKey($maxuse[0]) + 1;
		
		foreach($maxuse[0] as $maxk1=>$maxv1)
		{
			if($startKey < $maxk1)
			{
				$maxuseUn[] = explode("，",$maxv1);	
			}
			
		
		}
			
		foreach($maxuseUn as $unK=>$unV)
		{
			print_r($unV);
			echo "<hr >";
			(int)$unVCount = (int)count($unV) - 1;
			
			//最大使用量值
			$unVmaxuse = $unV[$unVCount];
			preg_match_all("/(([0-9]+[\.]?[0-9]+)|[1-9])/",$unVmaxuse,$edVmaxuse);
			$edVmaxuse[0][0];
			
			//循环食品种类
			for($i=0;$i<$unVCount;$i++)
			{
				if(preg_match_all("/(.*?)\（(.*?)\）/is",$unV[$i],$vv))
				{
					print_r($vv[1][0]);
					//$maxuseArr[] = $vv[1][0];
				
				}
				else
				{	echo $unV[$i];
					//$maxuseArr[] = $vv;
				}
			}
			echo "<hr>";
			
			//exit;
		}			
		//print_r($maxuseArr);
		
			//print_r($maxuseUn);

			
			
			
			//exit;
		 
			  
   
			
    }//end foreach url   	
	 */




















?>